package com.topten.dao.especificos;

import java.util.List;

import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
import com.topten.basicas.varejo.Estoque;
import com.topten.dao.generico.DAOGenerico;

public class DAOEstoque extends DAOGenerico<Estoque> implements IDAOEstoque {


	public Estoque consultarEstoquePorLojaEProduto(Integer lojaCodigo,
			Integer produtoCodigo) {
		TypedQuery<Estoque> query;
		try {
			String jpql = "Select e from Estoque e where e.loja.codigo=:codigol AND e.produto.codigo=:codigop";
			query = entityManager.createQuery(jpql, Estoque.class);
			query.setParameter("codigol", lojaCodigo);
			query.setParameter("codigop", produtoCodigo);
			return query.getSingleResult();
		} catch (NoResultException e) {
			e.printStackTrace();
			return null;

		}

	}

	public List<Estoque> consultarEstoquePorLoja(Integer lojaCodigo) {
		TypedQuery<Estoque> query;

		String jpql = "Select e from Estoque e where e.loja.codigo=:lojaCodigo";
		query = entityManager.createQuery(jpql, Estoque.class);
		query.setParameter("lojaCodigo",lojaCodigo);
		return query.getResultList();

	}
	
	public List<Estoque> buscarProdutoEstoquePorNomeELoja(String nome, Integer lojaCodigo) {

		String buscar = "Select e from Estoque e where  e.loja.codigo=:lojaCodigo and e.produto.descricao like :nom";
		TypedQuery<Estoque> query = entityManager.createQuery(buscar,
				Estoque.class);
		query.setParameter("nom", nome + "%");
		query.setParameter("lojaCodigo", lojaCodigo);

		return query.getResultList();

	}

}
